package cn.topcodes.tcsf.wechat.service;

import cn.topcodes.tcsf.admin.commons.generic.IGenericService;
import cn.topcodes.tcsf.wechat.domain.entity.WechatMp;
import org.springframework.transaction.annotation.Transactional;

/**
 * 微信公众号信息管理服务
 * @author Unicorn
 * Created by Unicorn on 2018/3/20.
 */
public interface WechatMpService extends IGenericService<WechatMp> {

    /**
     * 获取默认公众号ID
     * @return
     */
    String getDefaultMpId();

    @Transactional(readOnly = false, rollbackFor = Exception.class)
    void setDefaultMpId(String mpId);

    /**
     * 通过微信公众号id（本系统的）获取公众号id（微信服务器的公众号id）
     * @param wechatMpId 微信公众号id
     * @return  微信服务器的公众号id
     */
    String getMpId(Long wechatMpId);

    /**
     * 通过公众号id获取公众号信息
     * @param mpId     微信公众号id
     * @return  公众号信息
     */
    WechatMp findWechatMpByMpId(String mpId);

    /**
     * 获取当前微信服务器的公众号id
     * @return
     */
    String getCurrentMpId();

    /**
     * 获取当前本系统的公众号id
     * @return
     */
    String getCurrentWechatMpId();

    /**
     * 设置当前公众号
     * @param wechatMpId 本系统的公众号ID
     */
    void setCurrentMp(Long wechatMpId);

}
